package com.vermicelli.service.lmpl;

import com.usian.articles.Articles;
import com.usian.column.Collection;
import com.usian.dz.Dz;
import com.usian.user.User;
import com.vermicelli.mapper.CollectionMapper;
import com.vermicelli.service.CollectionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

@Service
public class CollectionServicelmpl implements CollectionService {
    @Autowired
    private CollectionMapper collectionMapper;
    /**
     * 根据用户ID获取收藏的文章列表
     *
     * @param id 用户ID
     * @return 收藏的文章列表，如果用户没有收藏任何文章则返回null
     */
    @Override
    public List<Articles> getCollection(Integer id) {
        // 根据用户ID查询收藏记录列表
        List<Collection> collections = collectionMapper.selectList(id);
        // 初始化一个动态数组用于存储文章对象
        ArrayList<Articles> arrayList = new ArrayList<>();

        // 检查收藏记录列表是否非空
        if (collections!=null){
            // 遍历收藏记录列表
            for (Collection collection : collections) {
                // 根据收藏记录中的文章ID查询文章详情
                Articles articles = collectionMapper.selectById(collection.getUserId());
                    // 将查询到的文章添加到动态数组中
                    arrayList.add(articles);
            }
        }
        // 检查动态数组中是否包含文章
        if (arrayList.size()>0){
            // 如果动态数组中有文章，则返回该文章列表
            return arrayList;
        }
        // 如果动态数组中没有文章，则返回null
        return null;
    }

    @Override
    public Object del(Integer id, Integer userid) {
        return collectionMapper.del(id,userid);
    }

    @Override
    public  List<Dz> comments(Integer id,Integer status) {
        return collectionMapper.comments(id,status);
    }

    @Override
    public User selectUserOne(Integer userId) {
        return collectionMapper.selectUserOne(userId);
    }

    @Override
    public Integer addComment(Dz dz) {
        return collectionMapper.addComment(dz);
    }
}
